dofile "lib/radical.lua"

function tile(s) 
  return const.path.gfx.."game/mad/"..s..".jpg"; 
end

function rg_tile(s) 
  return const.path.gfx.."game/ring/"..s..".jpg"; 
end

function ey_tile(s) 
  return const.path.gfx.."game/eye/"..s..".jpg"; 
end

function cm_tile(s) 
  return const.path.gfx.."game/common/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."4-mad/mad/"..s..".xml";
end

mad = engine.state {
   _words       = false --She saw words
  ,_end1        = false --She saw end 1
  ,_end2        = false --She saw end 2
  ,_time        = 0     --Period of time (0 - wakeup, 1 - before drugtime, 2 - drugtime, 3 - before breakfast, 4 - breakfast, 5 - music)
  ,_kickdoor    = false --Fohn thinks that she can kick out the door
  ,_toilet      = false --Toilet door is closed
  ,_noexit      = false --Fohn shouldn't leave the toilet
  ,_tab         = false --Fohn took a tab
  ,_cup         = false --Fohn took a cup
  ,_notab       = false --Fohn wasted drug
  ,_waste       = 0     --Number of times Fohn wasted drug
  ,_swallow     = false --Fohn tries to swallow a drug
  ,_waterdrug   = false --Drug is in water
  ,_nowater     = false --There is no water in a cup
  ,_slave       = false --Fohn took a drug
  ,_tea         = false --Fohn took tea
  ,_notea       = false --There is no tea in a cup
  ,_water       = false --There is water in a cup
  ,_pain        = false --The pain has started
  ,_paincount   = 0     --Pain counter (target 330)
  ,_attackret   = ''    --A return link
  ,_pain1       = false --First pain stage
  ,_pain2       = false --Second pain stage
  ,_pain3       = false --Third pain stage
  ,_first       = false --Fohn survived first stage of attack
}

mad_player = musplayer.player {
   mus("snowdrop"):inside("start6")
  ,mus("anxiety"):inside("dream4")
  ,mus("snowdrop"):inside("cell"):loop()
  ,mus("hurryup"):inside("cell2"):when("mad._noexit"):always():loop()
  ,mute():inside("cell3"):when("mad._noexit and mad._toilet"):always()
  ,mus("snowdrop"):inside("breakfast_cell1"):loop()
  ,mus("juxtaposition"):inside("breakfast_cell2"):loop()
  ,mus("meeting"):inside("music_cell"):loop()
  ,mute():inside("cell3_music_scene")

  ,sfx("pianoswoosh"):inside("start0"):always()
  ,sfx("firealarm"):inside("dream13")
  ,sfx("crush"):inside("cell2_door_scene")
  ,sfx("note"):inside("drugtime1")
  ,sfx("dooropen_echo"):inside("drugtime2")
  ,sfx("bam2"):inside("dont1"):always()
  ,mus("anxiety"):inside("drugtime_cell"):loop()
  ,sfx("note"):inside("breakfast1")
  ,sfx("knock"):inside("breakfast4")
  ,sfx("static"):inside("music_cell_trans1")
  ,mus("laudatedominium"):inside("music_cell_trans2"):loop()
  ,mute():inside("music_cell"):when("mad._pain"):fade(20000,20000)
  ,sfx("pianoswoosh3"):inside("music_attack"):always()
  ,sfx("impact"):inside("music_attack_scene3"):always()
  ,mute():inside("music_attack_scene1"):always()
  ,mus("breathe2"):inside("music_attack_scene1"):loop():always()
  ,mute():inside("finita2")
  ,sfx("bam3"):inside("finita3")
}

main = engine.main {
   start        = chain_ {
                     episode_("4-mad")
                    ,musplayer_("mad_player")
                    ,walk_("start0")
                  }
  ,finish       = gamefile_("4-mad/cell.lua")
}


------------------------------------------------------------------------------------------
-- Dream
------------------------------------------------------------------------------------------

start0 = engine.gameroom {
   fps          = 10
  ,words        = {
                     "ОНИ"
                    ,"люди без лиц"
                    ,"АВТОМОБИЛЬ"
                    ,"БОЛЬ"
                    ,"камера"
                    ,"камера"
                    ,"сон"
                    ,"проснуться"
                    ,"пробуждение"
                    ,"бесконечный кошмар"
                    ,"преследование"
                    ,"мертвый город"
                  }
  ,sizes        = {
                     18
                    ,22
                    ,24
                    ,26
                    ,44
                  }
  ,ontimer      = function(s,x,y)
                    if s._frno == nil then
                      s._frno = 0;
                    end
                    s._frno = s._frno + 1;
                    if s._frno >= 40 then
                      if s._tc == nil then
                        s._tc = 0;
                      end
                      if s._tc == 0 then
                        if not s._blk then
                          if s._oldz ~= nil then
                            drawing.clean(s.pic, s._oldz[1], s._oldz[2], s._oldz[3], s._oldz[4]);
                            s._oldz = nil;
                          end
                          s._blk = true;
                          if s._frno < 60 then
                            s._tc = 5;
                          elseif s._frno < 80 then
                            s._tc = 4
                          elseif s._frno < 100 then
                            s._tc = 3;
                          elseif s._frno < 120 then
                            s._tc = 2;
                          else
                            s._tc = 1;
                          end
                        else
                          local txt = s.words[rnd(table.len(s.words))];
                          local tz = sprite.text(drawing.font(const.fontb, s.sizes[rnd(5)]), txt, const.bordercolor);
                          local tw,th = sprite.size(tz);
                          local dx,dy = rnd(const.picwidth-tw),rnd(const.picheight-th);
                          sprite.copy(tz, s.pic, dx, dy);
                          s._oldz = {dx,dy,tw,th};
                          sprite.free(tz);
                          s._tc = 1;
                          s._blk=false;
                        end
                      end
                      s._tc = s._tc - 1;
                    end
                    if s._frno >= 165 then
                      s._frno = nil;
                      s._tc = nil;
                      s._blk = nil;
                      walk("start1");
                    end
                  end
}

start1 = pause {
   time         = 1000
  ,fading       = 0
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "НЕТ!", const.picwidth, 240, "white", const.fontb, 76);
                    return p;
                  end
  ,next         = "start2"
}

start2 = pause {
   time         = 2000
  ,fading       = 0
  ,next         = "start3"
}

start3 = pause {
   time         = 4000
  ,fading       = 30
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "Это не сон", const.picwidth, 260, const.textcolor, const.fontb, 16);
                    return p;
                  end
  ,next         = walkblack3_("start4")
}

start4 = pause {
   time         = 3000
  ,fading       = 30
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "Это не может быть сном", const.picwidth, 260, const.textcolor, const.fontb, 16);
                    return p;
                  end
  ,next         = walkblack3_("start5")
}

start5 = pause {
   time         = 5000
  ,fading       = 30
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "Это никогда не было сном", const.picwidth, 260, const.textcolor, const.fontb, 16);
                    return p;
                  end
  ,next         = walkblack3_("start6")
}

start6 = pause {
   tile         = { rg_tile "carwindow", 0, 20 }
  ,fading       = 60
  ,time         = 500
  ,next         = "dream1"
}

dream1 = scene {
   tile         = { rg_tile "carwindow", 0, 20 }
  ,bounds       = { 300, 380, 550 }
  ,dsc          = [[Дождь закончился. Солнце светит так ярко, что все окно машины заливает светом. Кажется, что тебя окружает 
                    абсолютная сверкающая пустота, и, стоит только открыть дверь, как ты провалишься в этот бесконечный свет, 
                    растворишься в нем без остатка. Даже один взгляд в окно словно бы лишает равновесия.]]
  ,alwaysdsc    = true
  ,nav          = {
                    left = vw("Выйти из машины", chain_ { sound_("cardoor"), walk_("dream2") })
                  }
}

dream2 = pause {
   tile         = const.path.gfx.."white.jpg"
  ,time         = 500
  ,next         = "dream3"
}

dream3 = pause {
   time         = 500
  ,fading       = 60
  ,tile         = rg_tile "wall1"
  ,next         = "dream4"
}

dream4 = scene {
   tile         = rg_tile "wall1"
  ,bounds       = { 90, nil, 750 }
  ,dsc          = [[Стоило сделать всего несколько шагов, перейти через дорогу, прикрываясь рукой от солнечного света,
                    как вновь настали сумерки. Над ней сомкнулась тень.^]]
  ,obj          = { "dream4_wall", "dream4_item" }
  ,nav          = {
                     left = vw("Налево", "dream8")
                    ,right = vw("Направо", "dream5")
                  }
}

dream4_wall = staticitem {
   dsc          = [[Эта огромная {стена} из грязных бетонных блоков такая невыносимо высокая. Даже запрокинув
                    голову, едва видишь ее край.]]
  ,act          = "Или это только кажется -- из-за солнечного света, который слепит глаза?"
  ,showonce     = true
}

dream4_item = staticitem {
   dsc          = "^^{Кажется}, она уже проходила здесь раньше."
  ,act          = "Впрочем, здесь все такое одинаковое."
  ,cnd          = if_("mad._end1 and mad._end2")
  ,showonce     = true
}

dream5 = scene {
   tile         = rg_tile "wall2"
  ,bounds       = { 110, nil, 730 }
  ,dsc          = [[Вокруг нет никого. Никого живого. Это как кладбище. Только здесь нет могил.^]]
  ,obj          = { "dream5_wall" }
  ,nav          = {
                     left = vw("Налево", "dream4")
                    ,right = vw("Направо", "dream6")
                  }
}

dream5_wall = staticitem {
   dsc          = [[{Стена} точно смыкается над ней. Точно с каждым ее шагом стена становится все выше.]]
  ,act          = [[Она касается стены рукой. Холодная. Этим бетонным блокам уже много лет, на них выбоины и грязь.
                    Раньше, еще до того, как она увидела черту впервые, она была уверена, что стена здесь разрисована
                    гневными лозунгами, вроде тех, которые выкрикивают вечные бастующие в день памяти, уродливыми рисунками
                    и бессмысленной бранью. Но на стене есть только трещины и грязь. И ни одной души вокруг.]]
  ,showonce     = true
}

dream6 = scene {
   tile         = rg_tile "wall3"
  ,bounds       = { 90, nil, 750 }
  ,dsc          = [[Нужно сделать всего несколько шагов, перейти через дорогу, и она вновь вернутся в яркий солнечный
                    день. Ей непросто побороть желание уйти.]]
  ,obj          = { "dream6_paper" }
  ,nav          = {
                     left = vw("Налево", "dream4")
                    ,right = vw("Направо", "dream7")
                  }
}

dream6_paper_txt = "Брать его в руки совсем не хочется. Она просто пытается разобрать слова, которые проступают через дождевую грязь.^"
dream6_paper = staticitem {
   dsc          = "Под ногами валяется какой-то измятый {листок}, весь заляпанный грязью. На нем едва можно разобрать несколько слов."
  ,act          = dream6_paper_txt.."{dream6_word1|Одно} из слов... "
  ,disable      = if_("mad._words")
}

dream6_word1 = staticitem {
  act           = dream6_paper_txt.."Одно из слов... ДЕНЬ.^{dream6_word2|Еще одно} слово... "
}

dream6_word2 = staticitem {
  act           = dream6_paper_txt.."Одно из слов... ДЕНЬ.^Еще одно слово... НАДЕЖДЫ.^{dream6_word3|Третье} слово... "
}

dream6_word3 = staticitem {
  act           = dream6_paper_txt.."Одно из слов... ДЕНЬ.^Еще одно слово... НАДЕЖДЫ.^Третье слово... ОСТАНОВИТЬ.^Есть и четвертое слово, одно едва {dream6_word4|проступает} через разводы грязи..."
}

dream6_word4 = staticitem {
  act           = chain_ {
                    set_("mad._words"),
                    dream6_paper_txt.."Одно из слов... ДЕНЬ.^Еще одно слово... НАДЕЖДЫ.^Третье слово... ОСТАНОВИТЬ.^Есть и четвертое слово, одно едва проступает через разводы грязи... БЕЗУМИЯ."
                  }
}

dream7 = scene {
   tile         = rg_tile "wall3"
  ,bounds       = { 90, nil, 750 }
  ,dsc          = [[Эта стена кажется бесконечной.]]
  ,obj          = { "dream7_item" }
  ,enter        = set_("mad._end2")
  ,alwaysdsc    = true
  ,nav          = {
                     left = vw("Налево", "dream6")
                    ,right = vw("Направо", "dream4")
                  }
}

dream7_item = staticitem {
   dsc          = "^^Кажется, здесь {что-то} есть. И как она могла не замечать это раньше?"
  ,act          = walk_("dream10")
  ,cnd          = if_("mad._end1 and mad._end2 and mad._words")
}

dream8 = scene {
   tile         = rg_tile "wall3"
  ,bounds       = { 90, nil, 750 }
  ,dsc          = [[Сколько она уже идет?.. Ничего вокруг не меняется.]]
  ,alwaysdsc    = true
  ,nav          = {
                     left = vw("Налево", "dream9")
                    ,right = vw("Направо", "dream4")
                  }
}

dream9 = scene {
   tile         = rg_tile "wall4"
  ,bounds       = { 110, nil, 730 }
  ,dsc          = [[Впереди, насколько она может видеть, только стена... И нет ничего, кроме стены.]]
  ,enter        = set_("mad._end1")
  ,alwaysdsc    = true
  ,nav          = {
                     left = vw("Налево", "dream4")
                    ,right = vw("Направо", "dream8")
                  }
}

dream10 = scene {
   bounds       = { 260, 260, 480 }
  ,dsc          = "Это {walk(dream11)|дверь}. Совсем серая, почти неотличимая от бетонных блоков."
}

dream11 = scene {
   bounds       = { 320, 260, 480 }
  ,dsc          = "Кажется, {walk(dream12)|дверь} не заперта. Ее можно открыть!"
}

dream12 = pause {
   time         = 2000
  ,enter        = stop_music
  ,fading       = 0
  ,next         = "dream13"
}

dream13 = pause {
   time         = 5000
  ,next         = "cellslide"
}


------------------------------------------------------------------------------------------
-- Wakeup
------------------------------------------------------------------------------------------

cellslide = slideright {
   tile         = tile "wall"
  ,x            = -100
  ,y            = 0
  ,endx         = 0
  ,step         = 2
  ,fps          = 20
  ,next         = "cell_intro"
}

cell_intro = scene {
   tile         = tile "wall"
  ,bounds       = { 100, nil, 750 }
  ,dsc          = [[Фён испуганно вскочила на ноги. В глазах обморочно потемнело, и ее левая рука невольно вытянулась в попытке ухватить за 
                    что-то, чтобы не упасть. ^Она упелась в стену. Стена. Но вовсе не та стена. Фён {walk(cell)|осматривается}.]]
}

cell = scene {
   tile         = tile "wall"
  ,enter        = choose_ {
                    ["mad._kickdoor and mad._time==0"] = chain_ { inc_("mad._time"), walk_("drugtime1") }
                  }
  ,bounds       = { 100, nil, 750 }
  ,dsc          = [[Она снова в какой-то камере. И снова не помнит, как оказалась здесь. Были какие-то люди, голоса и машина. Снова машина.
                    Это как изматывающий кошмар, который повторяется каждую ночь, вплоть до мельчайших деталей, только теперь она уверена, что
                    это не сон.^^]]
  ,obj          = { "fohn", "cell_window", "desk", "bed", "infopaper", "floor", "floorblood", "walls" }
  ,nav          = {
                    down = vw("В другую часть комнаты", "cell2")
                  }
}

cell_window = staticitem {
   dsc          = "На сей раз у ее камеры есть настоящее {окно}, в которое светит солнце."
  ,act          = [[Окно с решетками, как в тюрьмах. Фён видит -- она на втором или третьем этаже. Окно выходит в глухой двор,
                    вроде тех, кто разрешают прогуливаться заключенным в тюрьмах, но сейчас там никого нет. Напротив камеры Фён растет
                    дерево, высокое, с пожухлой листвой. Кажется, оно умирает, но ветви еще крепкие и упорно тянутся куда-то ввысь,
                    за переплет оконной рамы. Интересно, сколько всего в этом здании этажей? Наверняка сверху открывается интересный вид.]]
}

desk = staticitem {
   dsc          = "Рядом с окном примостился невысокий {столик}, вроде журнального, с которого давно слезла вся лакировка."
  ,act          = "Обычный стол, ничего интересного."
}

bed = staticitem {
   dsc          = "Вместо грязного, пропахшего потом матраса, теперь стоит металлическая {кровать}, однако вся наволочка, когда-то белая, потемнела от грязи."
  ,act          = "Хотя Фён едва держится на ногах, ложиться на эту кровать ей совсем не хочется."
}

infopaper = staticitem {
   dsc          = "Над кроватью висит {объявление} в исцарапаной рамке из орг-стекла."
  ,act          = walk_("infopaper_scene")
}

infopaper_scene = scene {
   bounds       = { 360, 200, 480 }
  ,dsc          = [[Режим дня^^
                    07-30 -- Подъем^
                    08-30 -- Прием лекарств^
                    09-30 -- Завтрак^
                    11-30 -- ...^^
                    Часть объявления оборвана.]]
  ,alwaysdsc    = true
  ,nav          = {
                    down = vw("Отойти", 
                      choose_ {
                         ["default"] = walk_("cell")
                        ,["mad._time==2"] = walk_("drugtime_cell")
                        ,["mad._time==3"] = walk_("breakfast_cell1")
                        ,["mad._time==4"] = walk_("breakfast_cell2")
                        ,["mad._time==5"] = walk_("music_cell")
                      })
                  }
}

floor = staticitem {
   dsc          = choose_ {
                     ["default"] = "Весь {пол} в этой камере затянут едко зеленым ковролином с проплешинами,"
                    ,["mad._time>1"] = "Весь {пол} в этой камере затянут едко зеленым ковролином с проплешинами."
                  }
  ,act          = "Что-то поскрипывает внизу при каждом шаге. Кажется, что ты в любой момент можешь рухнуть вниз."
}

floorblood = staticitem {
   dsc          = "на котором можно заметить темные, заскорузлые {пятна}."
  ,act          = "Не может быть... Кажется, это снова кровь!"
}

walls = staticitem {
   dsc          = "Все обои в комнате ободраны, точно кто-то пытался руками разодрать бетонные стены, только чтобы выбраться отсюда."
  ,act          = "Видно, когда-то эта камера старалась быть похожей на обычную комнату."
}

fohn = staticitem {
   dsc          = "Правая рука у {Фён} по-прежнему сильно болит, и она не может даже пошевелить пальцами.^"
  ,act          = "Тяжело просыпаться, когда вместо будильника звучит противопожарная сирена."
}

cell2 = scene {
   tile         = { tile "doorframe", 0, 20 }
  ,bounds       = { nil, 200 }
  ,dsc          = "Кажется, что ты находишься в чей-то заброшенной квартире, которую превратили в тюремную камеру, повесив на окна решетки и заперев на ключ."
  ,obj          = { "cell2_door", "cell2_kick", "cell2_steps", "cell2_newsteps" }
  ,nav          = {
                     up = vw("В туалет", "cell3")
                    ,down = vw("К окну", 
                      choose_ {
                         ["default"] = walk_("cell")
                        ,["mad._time==2"] = walk_("drugtime_cell")
                        ,["mad._time==3"] = walk_("breakfast_cell1")
                        ,["mad._time==4"] = walk_("breakfast_cell2")
                        ,["mad._time==5"] = walk_("music_cell")
                      })
                  }
}

cell2_kick = staticitem {
   dsc          = "Фён уже почти решилась. Нужно просто посильнее {ударить} по двери ногой, и та наверняка не выдержит."
  ,act          = chain_ { set_("mad._doorcrash"), walk_("cell2_door_scene") }
  ,cnd          = if_("mad._kickdoor and not mad._doorcrash")
}

cell2_door = staticitem {
   dsc          = choose_ {
                     ["default"] = "Впрочем, {дверь} для тюремной камеры довольно хлипкая на вид."
                    ,["cell2._seen"] = "{Дверь} в ее камере довольно хлипкая на вид."
                  }
  ,act          = choose_ {
                     ["default"] = chain_ { sound_("doorclosed2"), "Дверь заперта, однако она и правда кажется не слишком крепкой, к тому же засов свободно ходит в скобе. Фён даже {cell2_door_brake1|начинает думать}, что могла бы высадить дверь ногой." }
                    ,["mad._kickdoor"] = "Вряд ли стоит пытаться высадить ее еще раз."
                  }
}

cell2_door_brake1 = staticitem {
  act           = chain_ { set_("mad._kickdoor"), clstmp, refresh }
}

cell2_door_scene = cutscene {
   bounds       = { 260, 240, 480 }
  ,dsc          = [[Фён ударила по двери ногой, однако дверь оказалась гораздо крепче, чем она думала. Фён упала, а правую ногу свело от боли.
                    В первую секунду Фён даже подумала, что сломала голень... Но нет, все было в порядке. Она поднялась на ноги и обреченно
                    посмотрела на неприступную дверь.]]
  ,next         = "cell2"
}

cell3 = scene {
   tile         = choose_ {
                     ["default"] = cm_tile "darkwall"
                    ,["mad._toilet"] = void
                  }
  ,bounds       = { 145, nil, 710 }
  ,alwaysdsc    = true
  ,dsc          = "Весь пол в туалете залит водой. Наверное, протекают трубы."
  ,obj          = { "cell3_lamp", "cell3_door", "cell3_valve", "cell3_toilet", "cell3_visitors", "cell3_visitors2", "cell3_music" }
  ,nav          = { 
                    down = vw("Выйти", "cell2"):cnd("not mad._toilet", "Надо сначала открыть дверь.")
                  }
}

cell3_lamp = staticitem {
   dsc          = "{Лампа} на потолоке не горит,"
  ,act          = chain_ { sound_("switch"), "Свет не включается." }
}

cell3_valve = staticitem {
   dsc          = "Из {крана} в раковине течет тонкой струйкой вода."
  ,act          = "Этот вид чем-то завораживает. Струйка воды кажется совсем застывшей, точно она превратилась в стекло."
}

cell3_toilet = staticitem {
   dsc          = "Весь {унитаз} покрыт толстым слоем то ли плесени, то ли грязи."
  ,act          = "Смотреть на это совсем не хочется."
}

cell3_door = staticitem {
   dsc          = choose_ {
                     ["default"] = "и, если закрыть за собой {дверь}, то здесь станет совсем темно."
                    ,["mad._toilet"] = "{дверь} закрыта. Здесь так темно, точно тебе выкололи глаза."
                  }
  ,act          = choose_ {
                     ["default"] = chain_ { set_("mad._toilet"), sound_("dooropen2"), "Фён закрыла за собой дверь." }
                    ,["mad._toilet and mad._noexit"] = "Нет! Сейчас нельзя выходить!"
                    ,["mad._toilet and not mad._noexit"] = chain_ { unset_("mad._toilet"), sound_("dooropen2"), "Фён открыла дверь туалета." }
                  }
}


------------------------------------------------------------------------------------------
-- Drugtime
------------------------------------------------------------------------------------------

drugtime1 = pause {
   time         = 4000
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "8:00", const.picwidth, 260, const.textcolor, const.fontb, 22);
                    return p;
                  end
  ,next         = "cell"
}

cell2_steps = staticitem {
   dsc          = "^^Кажется, Фён слышит в коридоре какие-то {шаги}. С каждой секундой они становятся все громче и громче."
  ,act          = chain_ { set_("mad._noexit"), "Они за ней! Она это точно знает! Нужно что-то сделать... Она не может просто ждать их здесь." }
  ,cnd          = if_("mad._time==1")
  ,showonce     = true
}

cell3_visitors = staticitem {
   dsc          = "^^Фён прислонилась ухом к двери. Ей кажется, что она слышит как {cell3_visitors_obj|пощелкивает} личинка замка."
  ,cnd          = if_("mad._time==1 and mad._toilet and mad._noexit")
}

cell3_visitors_obj = staticitem {
  act           = chain_ { clstmp, walk_("drugtime2") }
}

drugtime2 = scene {
   bounds       = { 260, 240, 480 }
  ,enter        = chain_ { inc_("mad._time"), unset_("mad._noexit") }
  ,dsc          = [[Дверь в комнату распахнулась с таким звуком, точно кто-то выбил ее ногой -- сделал то, что у самой Фён так и не
                    получилось. Потом послышались чьи-то шаги, голоса, даже позвякивание стекла... Фён невольно схватилась за ручку
                    двери -- она не пустит их, если они попробуют ворваться. Однако вскоре шум затих, голоса исчезли. Но Фён все равно
                    далеко не сразу {walk(cell3)|решилась выйти}.]]
}

drugtime_cell = scene {
   tile         = tile "wall"
  ,fading       = choose_ {
                    ["from()==dont2"] = 0
                  }
  ,bounds       = { 100, nil, 750 }
  ,obj          = { "fohn2", "desk2", "underdesk", "infopaper", "floor" }
  ,nav          = {
                    down = vw("В другую часть комнаты", "drugtime_cell_hub")
                  }
}

drugtime_cell_hub = engine.hub {
  enter         = function(s)
                    if mad._notab then
                      mad._notab = false;
                      put("tab", "drugtime_cell");
                    end
                    if mad._slave then
                      inventory.remove("tab");
                      inventory.remove("cup");
                      mad._time = 3;
                      walk("breakfast1");
                    else
                      walk("cell2");
                    end
                  end
}

underdesk = staticitem {
   dsc          = "{Под столиком} что-то лежит."
  ,act          = "Это просто какой-то бумажный сверток."
}

fohn2 = staticitem {
   dsc          = choose_ {
                     ["default"] = "{Фён} все еще не понимает, где она. Ей так и не удается вспомнить, как ее сюда привезли.^"
                    ,["mad._swallow"] = "Фён пытается {проглотить} таблетку, однако таблетка такая большая, что встает поперек горла.^"
                  }
  ,act          = choose_ {
                     ["default"] = "Быть может, это... больница?"
                    ,["mad._swallow"] = chain_ { unset_("mad._swallow"), set_("mad._notab"), inc_("mad._waste"), "Фён попыталась проглотить таблетку, однако ее чуть не стошнило, и ей пришлось ее выплюнуть." }
                  }
}

desk2 = staticitem {
   dsc          = choose_ {
                     ["default"] = "У окна стоит затертый деревянный {стол}."
                    ,["not mad._tab and not mad._cup"] = "На {столе} у окна стоит пластиковый {cup|стаканчик} и лежит какая-то {tab|таблетка}, но Свете совсем не хочется ее принимать."
                    ,["not mad._tab and mad._cup"] = "На {столе} у окна лежит какая-то {tab|таблетка}."
                    ,["not mad._cup and mad._tab"] = "На {столе} у окна стоит пластиковый {cup|стаканчик}."
                  }
  ,act          = "Обычный стол, ничего интересного."
}

tab = item {
   nam          = "Таблетка"
  ,img          = ico "tab-use"
  ,ico          = ico "tab"
  ,dsc          = choose_ {
                     ["default"] = "^^Фён не верит своим глазам. На столе снова лежит {таблетка}."
                    ,["mad._waste==2"] = "^^Этого не может быть! {Таблетка} опять появилась на столе."
                    ,["mad._waste==3"] = "^^На столе лежит {таблетка}. Та самая, такая похожая на обезболивающее. От нее невозможно избавиться. Но она не может, не должна ее принимать."
                    ,["mad._waste==4"] = "^^На столе лежит {таблетка}."
                  }
  ,tak          = chain_ { 
                    set_("mad._tab"), 
                    choose_ {
                       ["default"] = walk_("dont1")
                      ,["dont1._seen and mad._waste~=4"] = "Фён взяла таблетку." 
                      ,["mad._waste==4"] = chain_ { unlock_("4-drug"), drop_("cup"), inc_("mad._time"), walk_("breakfast1") }
                    }
                  }
  ,use          = chooseuse_ {
                     ["default"] = "Не стоит этого делать."
                    ,["desk2"] = 
                        choose_ {
                           ["default"] = chain_ { unset_("mad._tab"), drop_("tab"), put_("tab"), "Фён положила таблетку на стол." }
                          ,["mad._waste>0"] = chain_ { drop_("tab"), set_("mad._notab"), inc_("mad._waste"), "Фён хотела вновь положить таблетку на стол, но вдруг передумала, бросила ее на пол и раздавила ногой." }
                        }
                    ,["fohn2"] = chain_ { drop_("tab"), set_("mad._swallow"), "Фён положила таблетку в рот." }
                    ,["cup"] = 
                        choose_ {
                           ["default"] = chain_ { drop_("tab"), set_("mad._waterdrug"), "Фён положила таблетку в стакан, и та быстро растворилась в воде." }
                          ,["mad._nowater"] = "Какой смысл? В стаканчике уже нет воды."
                        }
                    ,["floor"] = chain_ { inc_("mad._waste"), set_("mad._notab"), drop_("tab"), "Фён бросила таблетку на пол и раздавила ее ногой." }
                    ,["underdesk"] = chain_ { drop_("tab"), set_("mad._notab"), inc_("mad._waste"), "Фён закинула таблетку под стол." }
                  }
}

cup = item {
   nam          = choose_ {
                     ["default"] = "Стакан с водой"
                    ,["mad._nowater"] = "Пустой стакан"
                    ,["mad._waterdrug"] = "Стакан с лекарством"
                  }
  ,img          = ico "pcup-use"
  ,ico          = ico "pcup"
  ,tak          = chain_ { set_("mad._cup"), "Фён взяла стакан." }
  ,use          = chooseuse_ {
                     ["default"] = "Не стоит этого делать."
                    ,["desk2"] = chain_ { unset_("mad._cup"), drop_("cup"), put_("cup"), "Фён поставила стаканчик на стол." }
                    ,["fohn2"] = 
                        choose_ {
                           ["default"] = chain_ { set_("mad._nowater"), "Фён выпила воды из стакана, ей стало немного лучше." }
                          ,["mad._swallow"] = chain_ { unset_("mad._swallow"), set_("mad._nowater"), set_("mad._notab"), inc_("mad._waste"), "Фён попыталась запить таблетку водой, но та все равно встала поперек горла, и ей пришлось ее выплюнуть." }
                          ,["mad._waterdrug"] = chain_ { set_("mad._nowater"), set_("mad._slave"), "Фён с трудом заставила себя выпить лекарство. Жидкость в стакане с резким щелочным запахом была такой горькой, что у Фён начались рвотные позывы, как только она сделала первый глоток. Однако она все же заставила себя проглотить весь это раствор целиком." }
                          ,["mad._nowater"] = "В стакане ничего нет."
                        }
                    ,["floor"] = 
                        choose_ {
                           ["default"] = chain_ { set_("mad._nowater"), "Фён вылила воду на пол." }
                          ,["mad._waterdrug"] = chain_ { inc_("mad._waste"), set_("mad._notab"), set_("mad._nowater"), "Фён вылила раствор на пол." }
                          ,["mad._nowater"] = "Зачем?"
                        }
                    ,["underdesk"] = 
                        choose_ {
                           ["default"] = chain_ { drop_("cup"), set_("mad._nowater"), "Фён вылила воду на пол и закинула стаканчик под стол." }
                          ,["mad._waterdrug"] = chain_ { drop_("cup"), set_("mad._notab"), inc_("mad._waste"), "Фён вылила раствор на пол и закинула стаканчик под стол." }
                          ,["mad._nowater"] = chain_ { drop_("cup"), "Света закинула стаканчик под стол." }
                        }
                  }
}

dont1 = pause {
   time         = 500
  ,fading       = 0
  ,ondrawbg     = function(s,p)
                    drawing.draw_text(p, "Нет!", 200, 220, "white", const.fontb, 54);
                    return p;
                  end
  ,next         = "dont2"
}

dont2 = pause {
   time         = 500
  ,fading       = 0
  ,ondrawbg     = function(s,p)
                    drawing.draw_text(p, "Не стоит делать этого!", 360, 360, const.textcolor, const.fontb, 48);
                    return p;
                  end
  ,next         = "drugtime_cell"
}


------------------------------------------------------------------------------------------
-- Breakfast
------------------------------------------------------------------------------------------

breakfast1 = pause {
   time         = 4000
  ,enter        = drop_("tab")
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "9:00", const.picwidth, 260, const.textcolor, const.fontb, 22);
                    return p;
                  end
  ,next         = "breakfast_cell1"
}

breakfast_cell1 = scene {
   tile         = tile "wall"
  ,bounds       = { 100, nil, 750 }
  ,obj          = { "fohn3", "window2", "breakfast_time", "infopaper" }
  ,nav          = {
                    down = vw("В другую часть комнаты", "cell2")
                  }
}

fohn3 = staticitem {
   dsc          = choose_ {
                     ["default"] = "{Таблетка} по-прежнему лежит на столе, но Фён уже не обращает на нее внимания."
                    ,["mad._slave"] = "Фён совсем ничего не чувствует после того, как она приняла ту отвратительную таблетку. Как будто это и правда было {обезболивающее}.^"
                  }
  ,act          = choose_ {
                     ["default"] = "Нет, лучше просто попробовать забыть о ней, не замечать ее. Просто представить, что ее здесь нет."
                    ,["mad._slave"] = "Впрочем, рука у нее по-прежнему болит."
                  }
}

window2 = staticitem {
   dsc          = "В {окно} ярко светит утреннее солнце, пыль в воздухе красиво поблескивает в его лучах."
  ,act          = [[Фён посмотрела через решетку вниз, во дворик, где все так же не было ни одной живой души. Под самым окном ее камеры стоял огромный мусорный бак, 
                    который она не замечала раньше. Фён даже показалось, что она чувствует сладковатый запах гнили.]]
}

breakfast_time = staticitem {
   dsc          = "{Время} тянется так невыносимо медленно, точно все вокруг Фён застыло и парализовано, точно весь этот мир оживает лишь, когда в коридоре раздаются шаги."
  ,act          = "Фён кажется, что она проснулась под вой сирен уже несколько часов назад, однако еще только рассвет."
}

cell2_newsteps = staticitem {
   dsc          = "^^Кажется, за дверью вновь слышатся {шаги}."
  ,act          = chain_ { set_("mad._noexit"), "Это наверняка они. Они решили вернуться. Нужно снова спрятаться где-нибудь -- да поскорее." }
  ,cnd          = if_("mad._time==3")
  ,showonce     = true
}

cell3_visitors2 = staticitem {
   dsc          = "^^Фён пытается {прислушаться} к тому, что происходит в за дверью."
  ,cnd          = if_("mad._time==3 and mad._noexit and mad._toilet")
  ,act          = chain_ { inc_("mad._time"), unset_("mad._noexit"), walk_("breakfast2") }
}

breakfast2 = scene {
   bounds       = { 260, 260, 480 }
  ,dsc          = [[Они снова в ее комнате! Фён слышит голоса, шаги и поскрипывание пола. Но ничего. Нужно лишь немного {walk(breakfast3)|переждать}, и они снова
                    уйдут. И тогда ей не придется встречаться с ними, смотреть на них.]]
}

breakfast3 = scene {
   bounds       = { 260, 260, 480 }
  ,dsc          = [[Но нет, шаги становятся только громче. {walk(breakfast4)|Кто-то} подходит к ее двери. Кто-то...]]
}

breakfast4 = pause {
   time         = 3000
  ,next         = "breakfast5"
}

breakfast5 = scene {
   bounds       = { 260, 260, 480 }
  ,dsc          = [[Нет! Кто-то стучит... пытается повернуть ручку двери. {walk(breakfast6)|Нельзя} пускать их сюда! Они не должны войти!]]
}

breakfast6 = dialog {
   bounds       = { 260, 260, 480 }
  ,dsc          = "-- Вы там?"
  ,dlg          = dxml "breakfast"
}

breakfast7 = scene {
   bounds       = { 260, 260, 480 }
  ,dsc          = [[Голос за дверью затих. Он показался Фён таким участливым, точно ее нарочно пытались выманить, заставить открыть дверь.
                    Но теперь в ее комнате {walk(cell3)|снова тихо}. Если только это не уловка. Если они не поджидают ее там, у двери.]]
}

breakfast_cell2 = scene {
   tile         = tile "wall"
  ,bounds       = { 100, nil, 750 }
  ,dsc          = "Это всего лишь завтрак. Ей просто принесли завтрак. Фён начинает думать, что могла бы попробовать в следующий раз не прятаться в уборной, но...^^"
  ,obj          = { "window3", "floor2", "fohn4", "desk3", "spoon" }
  ,nav          = {
                    down = vw("В другую часть комнаты", "cell2")
                  }
}

fohn4 = staticitem {
   dsc          = "{Фён} изучила в этой камере уже каждую деталь, точно она провела здесь несколько лет."
  ,act          = choose_ {
                     ["default"] = "Но она все еще чувствует {walk(fohn4_walk)|утреннюю слабость}. Неужели прошло лишь несколько минут после ее пробуждения?"
                    ,["fohn4_walk._seen"] = "Фён мучит сильная изжога."
                  }
}

fohn4_walk = scene {
   bounds       = { 260, 240, 480 }
  ,nohud        = true
  ,dsc          = [[Фён обходит свою камеру -- с каждым шагом эта комната кажется все меньше и меньше, точно обшарпанные стены неумолимо наступают на нее. Фён как-то 
                    не по себе. Вдруг она понимает, что ее мучит сильная {walk(breakfast_cell2)|изжога} -- точно вся гортань ее воспалена и кровоточит.]]
  ,alwaysdsc    = true
  ,obj          = { "fohn4_walk_guess" }
}

fohn4_walk_guess = staticitem {
  dsc           = choose_ {
                    ["mad._slave"] = "Быть может, это из-за таблетки, которую она приняла?"
                  }
}

spoon = item {
   nam          = "Ложка"
  ,dsc          = "Из всех приборов ей принесли лишь затертую эмалированную {ложку}."
  ,tak          = "Фён взяла ложку."
  ,img          = ico "spoon-use"
  ,ico          = ico "spoon"
  ,use          = chooseuse_ {
                     ["default"] = "В этом нет никакого смысла."
                    ,["desk3"] = chain_ { drop_("spoon"), put_("spoon", "breakfast_cell2"), "Фён положила ложку на стол." }
                    ,["cell2_door"] = chain_ { sound_("lock"), drop_("spoon"), "Фён просунула ложку в щель у косяка двери и попыталась сдинуть засов, однако у нее ничего не вышла, и она лишь погнула ложку. Теперь от этой ложки никакого проку." }
                    ,["teacup"] = "В кружке нечего размешивать."
                    ,["bowl"] = "Нет, Фён не собирается это есть."
                    ,["plate"] = "Фён коснулась желтка ложкой, и густая похожая на гной субстанция растеклась по тарелке. Ей было сложно сдерживать тошноту."
                  }
}

desk3 = staticitem {
   dsc          = choose_ {
                     ["default"] = "На {столе} стоят {bowl|чашка} жидкого супа и {plate|тарелка} с пустой глазуньей."
                    ,["not mad._tea"] = "На {столе} стоят {teacup|кружка} с дымящимся чаем, {bowl|чашка} жидкого супа и {plate|тарелка} с постной глазуньей."
                  }
  ,act          = "Обычный стол, ничего интересного."
}

floor2 = staticitem {
   dsc          = "{Пол} под ногами скрипит так, что Фён боится сделать лишний шаг."
  ,act          = "Такое уже было. Пол расходился под ногами. Все это здание такое старое и мертвое, как и те, за чертой."
}

window3 = staticitem {
   dsc          = "Вид в окне как будто {застыл во времени}."
  ,act          = "Как и все здесь. После того, как они ушли."
}

bowl = staticitem {
  act           = "Это и не суп даже, а пустой бульон, в котором плавают отвратительные капли жира. Есть это совсем не хочется."
}

plate = staticitem {
  act           = "Желтки покрылись тонкой прозрачной коркой, которая напоминает плесень. Фён чувствует, как к горлу подступает тошнота."
}

teacup = item {
   nam          = choose_ {
                     ["default"] = "Кружка с чаем"
                    ,["mad._notead"] = "Пустая кружка"
                  }
  ,dsc          = "На столе стоит пустая {кружка} и тарелки с завтраком -- яичница и суп. Фён так и не смогла ничего съесть."
  ,tak          = chain_ { set_("mad._tea"), "Фён взяла кружку." }
  ,ico          = ico "cup"
  ,img          = ico "cup-use"
  ,use          = chooseuse_ {
                     ["default"] = "В этом нет никакого смысла."
                    ,["floor2"] = 
                        choose_ {
                           ["default"] = chain_ { set_("mad._notea"), sound_("waterpour"), "Фён вылила содержимое кружки на пол." }
                          ,["mad._notea"] = "Фён совсем не хочется бросать на пол кружку. Кружка еще пригодится."
                        }
                    ,["cell3_toilet"] = 
                        choose_ {
                           ["default"] = chain_ { set_("mad._notea"), sound_("waterpour"), "Фён вылила содержимое кружки в унитаз." }
                          ,["mad._notea"] = "Кружка уже пуста."
                        }
                    ,["cell3_valve"] = 
                        choose_ {
                           ["default"] = "В кружку уже налит мерзкий на вид чай."
                          ,["mad._notea and not mad._water"] = chain_ { set_("mad._water"), sound_("watercup"), "Фён налила в кружку воды из-под крана." }
                          ,["mad._water"] = "В кружке уже есть вода."
                        }
                    ,["fohn4"] = 
                        choose_ {
                           ["default"] = "Чай выглядит и пахнет довольно странно, как будто это и не чай вовсе. Фён не собирается это пить."
                          ,["mad._notea and not mad._water"] = "Кружка пуста."
                          ,["mad._water"] = chain_ { set_("mad._drink"), sound_("drink"), unset_("mad._water"), "Фён быстро осушила содержимое кружки. Ей стало немного, но она все еще чувствует жжение в горле." }
                        }
                    ,["fohn5"] = 
                        choose_ {
                           ["default"] = "Кружка пуста."
                          ,["mad._water"] = "Нет, пить Фён больше не хочется."
                        }
                    ,["window4"] = chain_ { sound_("cupsmash"), drop_("teacup"), put_("cupdebris"), "Фён швырнула крыжку в окно, та ударилась о решетку, разбилась, и осколи разлетелись по всей комнате." }
                    ,["music_cell3_door"] = chain_ { sound_("cupsmash"), drop_("teacup"), put_("cupdebris"), "Фён со всей силы ударила кружкой по косяку двери. Кружка точно взорвалась у нее в руках, и осколки разлетелись по всей комнате." }
                    ,["music_cell3_floor"] = chain_ { sound_("cupsmash"), drop_("teacup"), put_("cupdebris"), "Фён бросила кружку на пол, и та расколась на множество осколков." }
                  }
}

cell3_music = staticitem {
   dsc          = "^^Фён кажется, что она {слышит что-то} из-за стены в туалете."
  ,act          = "Это похоже на {walk(cell3_music_scene)|музыку} ..."
  ,cnd          = if_("mad._drink and mad._time~=5")
}

cell3_music_scene = cutscene {
   bounds       = { 260, 260, 480 }
  ,enter        = inc_("mad._time")
  ,dsc          = [[Нет, это точно музыка. Фён уверена, что ей не слышится.^
                    Это красивая медленная музыка. Кто-то слушает музыку в соседней камере. Или же там не камера вовсе?]]
  ,next         = "cell3"
}


------------------------------------------------------------------------------------------
-- Music
------------------------------------------------------------------------------------------

function music_cell_attack(s)
  if mad._pain then
    if mad._paincount == 0 then
      play_sound("pianoswoosh2",0,5);
    end
    if mad._paincount == 330 then
      mad._paincount = 0;
      mad._attackret = deref(here());
      walk("music_attack");
      return;
    end
    mad._paincount = mad._paincount+1;
  end
end

cupdebris = item {
   nam          = "Острый осколок"
  ,dsc          = "^^На полу валяются {осколки} кружки."
  ,tak          = "Фён подобрала один из осколков."
  ,ico          = ico "cupdebris"
  ,img          = ico "cupdebris-use"
  ,use          = chooseuse_ {
                     ["default"] = "В этом нет никакого смысла."
                    ,["fohn5"] = walk_("finita1")
                  }
}

music_cell_trans1 = pause {
   time         = 1000
  ,enter        = chain_ { drop_("teacup"), drop_("spoon") }
  ,next         = "music_cell_trans2"
}

music_cell_trans2 = pause {
   time         = 4000
  ,ondrawbg     = function(s,p)
                    drawing.draw_text_center(p, "11:30", const.picwidth, 260, const.textcolor, const.fontb, 22);
                    return p;
                  end
  ,next         = "music_cell"
}

music_cell = scene {
   tile         = tile "wall"
  ,enter        = choose_ {
                    ["not music_cell_trans1._seen"] = walk_("music_cell_trans1")
                  }
  ,ontimer      = music_cell_attack
  ,bounds       = { 100, nil, 750 }
  ,obj          = { "fohn5", "music", "teacup", "window4", "infopaper" }
  ,nav          = {
                    down = vw("В другую часть комнаты", "music_cell2")
                  }
}

fohn5 = staticitem {
   dsc          = "{Фён} чувствует слабую боль в области висков -- точно голову ее сжимает металлический обруч."
  ,act          = "Скоро это начнется... Наверное, осталось совсем немного. Несколько глубоких вздохов, несколько шагов..."
}

music = staticitem {
   dsc          = "В комнате начинает играть {музыка} -- она льется ниоткуда, кажется, что ее порождают обшарпанные стены, что все вокруг Фён начинает звучать. Неужели все это просто кажется ей?^"
  ,act          = "Фён осматривает комнату, но по-прежнему ничего не видит. Музыка возникла ниоткуда, точно просочившись сквозь разбитые стены. Музыка как будто немного успокаивает ее, головная боль уже не кажется такой сильной."
  ,cnd          = not_("mad._pain")
}

window4 = staticitem {
   dsc          = "В комнате так светло, что Фён даже невольно прикрывает глаза. Солнечный свет заливает {окно}."
  ,act          = chain_ { set_("mad._pain"), "Теней на улице почти нет. Скоро это начнется." }
  ,showonce     = true
}

music_cell2 = scene {
   tile         = { tile "doorframe", 0, 20 }
  ,bounds       = { nil, 200 }
  ,ontimer      = music_cell_attack
  ,obj          = { "music_cell3_door" }
  ,nav          = {
                     up = vw("В туалет", "music_cell3")
                    ,down = vw("К окну", "music_cell")
                  }
}

music_cell3_door = staticitem {
   dsc          = "{Дверь} все так же закрыта, она по-прежнему взаперти."
  ,act          = "Дверь хоть и шаткая, но открыть ее никак не получается."
}

music_cell3 = scene {
   tile         = cm_tile "darkwall"
  ,bounds       = { 145, nil, 710 }
  ,ontimer      = music_cell_attack
  ,obj          = { "music_cell3_floor" }
  ,nav          = { 
                    down = vw("Выйти", "music_cell2")
                  }
}

music_cell3_floor = staticitem {
   dsc          = "Весь {пол} в туалете залит водой. Наверное, протекают трубы."
  ,act          = "Находиться здесь долго совсем не хочется."
}

music_attack = pause {
   tile         = ey_tile "wake"
  ,time         = 500
  ,fading       = 0
  ,next         = "music_attack_prescene"
}

music_attack_prescene = pause {
   time         = 2000
  ,next         = "music_attack_scene1"
}

music_attack_scene1 = scene {
   obj          = { "attack_fall", "attack_stoppain1", "attack_stoppain2" }
  ,nav          = {
                    up = vw("Подняться", "music_attack_scene2")
                  }
}

attack_fall = staticitem {
   dsc          = [[Фён повалилась на колени. Она не могла даже пошевелиться от боли, не могла вздохнуть. Острая боль пронзала ее виски, усиливаясь с каждой секундой, 
                    отдаваясь в зубах.^
                    Надо {сделать} что-то... Надо остановить... Надо...]]
  ,act          = choose_ {
                     ["default"] = "Фён наконец смогла вздохнуть и с надсадным хрипом набрала полную грудь воздуха. Но ноги все еще {attack_fall2|не слушались} ее."
                    ,["mad._first"] = chain_ { set_("mad._pain3"), "Кажется, контроль над телом постепенно возвращается к ней. Надо попробовать встать." }
                  }
  ,cnd          = if_("not mad._pain1")
}

attack_fall2 = staticitem {
  act           = chain_ { set_("mad._pain1"), refresh }
}

attack_stoppain1 = staticitem {
   dsc          = "Надо остановить... Сделать хоть что-то...^Рука Фён невольно потянулась к карману куртки, {однако} ..."
  ,act          = chain_ { set_("mad._pain2"), refresh }
  ,cnd          = if_("mad._pain1 and not mad._pain2")
}

attack_stoppain2 = staticitem {
   dsc          = [[Фён вспомнила, что у нее больше нет ножа. Нет ни ножа, ни холодного пронзающего ветра на крыше. Ничто не остановит боль.
                    Но все равно -- {надо вставать}.]]
  ,act          = chain_ { set_("mad._pain3"), "Кажется, контроль над телом постепенно возвращается к ней. Надо попробовать встать." }
  ,cnd          = if_("mad._pain2")
}

music_attack_scene2 = engine.hub {
  enter         = choose_ {
                     ["default"] = chain_ { unset_("mad._pain1"), unset_("mad._pain2"), unset_("mad._pain3"), set_("mad._first"), exec_("play_music(nil,nil,3000,3000);walkblack_(mad._attackret)()") }
                    ,["not mad._pain3"] = walk_("music_attack_scene3")
                  }
}

music_attack_scene3 = pause {
   time         = 500
  ,next         = "music_attack_scene1"
}

finita1 = scene {
   bounds       = { 260, 260, 480 }
  ,nohud        = true
  ,dsc          = "Фён несколько секунд смотрела на острый осколок в своей руке, точно не могла понять, откуда он взялся. Потом она села на колени {walk(finita2)|и} ..."
}

finita2 = scene {
   bounds       = { 260, 280, 480 }
  ,nohud        = true
  ,dsc          = "... со всей силы {walk(finita3)|вонзила} осколок в свое правое бедро."
}

finita3 = pause {
   time         = 4000
  ,next         = "main"
}